package cn.itsource.ticket.runnable;

/**
 * 卖票线程业务类
 */
public class TicketRunnableImpl implements Runnable{
	/**50张票，因为3个线程共享同一个业务类对象，所以不用static修饰*/
	private int ticket = 50;
	
	@Override
	public void run() {
		//卖票
		while (ticket > 0) {//只要有票就卖
			//调用卖一张票方法
			saleOne();//调用方和被调用方都没有static修饰，都在同一个类中，可以直接方法名调用
			try {
				Thread.sleep(20);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 卖一张票方法
	 */
	private void saleOne(){
		//获取当前线程对象
		Thread currentThread = Thread.currentThread();
		//获取当前线程对象的名字
		String name = currentThread.getName();
		
		//表示卖的票号
		System.out.println(name + "---当前票号：" + ticket);
		//卖一张减一张
		ticket--;
	}
}
